#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QHostAddress>
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setWindowTitle("医生端");
    this->setWindowIcon(QIcon(":doctorimg/img/doctorIcon.png"));

    // 设置主窗口背景及控件样式
    this->setStyleSheet(
        "QWidget { background-color: rgba(255, 240, 245, 0.95); }" // 整体背景为浅粉色
        "QLabel { color: #880E4F; font-size: 24px; font-weight: bold; }" // 增大字体为24px
        "QLineEdit { min-height: 40px; background-color: rgba(255, 255, 255, 0.9); "
        "border: 2px solid #F48FB1; padding: 12px; border-radius: 10px; font-size: 20px; color: black; }" // 调整输入框
        "QPushButton { min-width: 100px; min-height: 40px; background-color: #F8BBD0; color: white; border: 2px solid #F48FB1; "
        "padding: 15px 30px; border-radius: 12px; font-size: 22px; font-weight: bold; }" // 按钮背景、字体及大小设置
        "QPushButton:hover { background-color: #F48FB1; }" // 悬停时按钮背景变深粉色
    );


    QVBoxLayout *mainLayout = new QVBoxLayout(this); // 创建主布局
    mainLayout->setAlignment(Qt::AlignCenter); // 设置主布局为居中
    mainLayout->setSpacing(20); // 设置控件之间的间隔为20像素
    mainLayout->setContentsMargins(20, 20, 20, 20); // 设置布局的边距

    // 添加标题标签
    QLabel *titleLabel = ui->label;
    titleLabel->setStyleSheet("font-size: 32px; font-weight: bold; color: #880E4F;");
    mainLayout->addWidget(titleLabel, 0, Qt::AlignCenter); // 将标题标签添加到主布局并居中

    // 创建垂直布局，用于按钮
    QVBoxLayout *buttonLayout = new QVBoxLayout();

    // 将按钮添加到垂直布局
    buttonLayout->addWidget(ui->guahao);
    buttonLayout->addWidget(ui->editCaseButton);
    buttonLayout->addWidget(ui->edit);
    buttonLayout->addWidget(ui->update);
    buttonLayout->addWidget(ui->connect);
    buttonLayout->addWidget(ui->pushButton_6);

    // 创建一个包含图片的QLineEdit（设置只读以避免编辑）
    QLineEdit *lineEdit = ui->lineEdit;
    lineEdit->setReadOnly(true); // 设置为只读，避免用户编辑
    // 设置背景图片
    lineEdit->setStyleSheet("background-image: url(:/doctorimg/img/doctor.png); "
                            "background-repeat: no-repeat; "
                            "background-position: center; "
                            "border: none;"); // 移除边框
    // 设置固定大小
    lineEdit->setFixedSize(300, 600); // 根据需要设置固定大小



    // 创建一个水平布局，将按钮垂直排列并与输入框并排
    QHBoxLayout *hLayout = new QHBoxLayout();
    hLayout->addLayout(buttonLayout); // 将按钮布局添加到水平布局
    hLayout->addWidget(lineEdit); // 将图片输入框添加到水平布局的右边

    // 将水平布局添加到主布局
    mainLayout->addLayout(hLayout);

}

Widget::~Widget()
{
    delete ui;
    delete c;           // 删除动态创建的窗口实例
    delete caseEditor;  // 删除动态创建的窗口实例
    delete b;           // 删除动态创建的窗口实例
    delete a;           // 删除动态创建的窗口实例
    delete d;           // 删除动态创建的窗口实例
}

void Widget::on_guahao_clicked()
{
    if (!c) { // 检查指针是否为 nullptr
        c = new guahao(); // 动态创建实例
    }
    c->show(); // 显示窗口
}

void Widget::on_editCaseButton_clicked()
{
    if (!caseEditor) {
        caseEditor = new caseeditor(); // 动态创建实例
    }
    caseEditor->show();
}

void Widget::on_edit_clicked()
{
    if (!b) {
        b = new edit(); // 动态创建实例
    }
    b->show();
}

void Widget::on_update_clicked()
{
    if (!a) {
        a = new class update(); // 动态创建实例
    }
    a->show();
}

void Widget::on_connect_clicked()
{
    if (!d) {
        d = new Netconnect(); // 动态创建实例
    }
    d->show();
}

void Widget::on_pushButton_6_clicked()
{
    QMessageBox::StandardButton reply;
    reply = QMessageBox::question(this, "退出", "你确定想要退出程序吗?",
                                  QMessageBox::Yes | QMessageBox::No);
    if (reply == QMessageBox::Yes) {
        QApplication::quit(); // 退出应用程序
    }
}
